Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

121
Visualizações
¿Por qué 100 >> 100 y 100 >>> 100 devuelven 6 en Javascript?

De la documentación :

El operador de desplazamiento a la derecha (>>) desplaza el primer operando el número especificado de bits a la derecha. Los bits en exceso desplazados hacia la derecha se descartan. Las copias del bit más a la izquierda se desplazan desde la izquierda. Dado que el nuevo bit más a la izquierda tiene el mismo valor que el bit anterior más a la izquierda, el bit de signo (el bit más a la izquierda) no cambia. De ahí el nombre de "propagación de signos".

Por lo que entiendo, dado que 100 es 0b1100100 , cambiarlo 100 veces a la derecha debería producir 0b0 . Sin embargo, cuando ejecuto 100 >> 100 en Javascript (usando Chrome), devuelve 6. ¿Por qué es este el caso? Supongo que tiene algo que ver con la representación interna de números de JS, pero me gustaría saberlo más claramente.

Editar: la respuesta sigue siendo 6, incluso cuando se usa el operador >>> sin firmar. Firmar/sin firmar no parece importar.

Documentación de operación sin firmar:

El operador de desplazamiento a la derecha sin signo (>>>) (desplazamiento a la derecha de relleno cero) desplaza el primer operando el número especificado de bits a la derecha. Los bits en exceso desplazados hacia la derecha se descartan. Los bits cero se desplazan desde la izquierda. El bit de signo se convierte en 0, por lo que el resultado siempre es no negativo. A diferencia de los otros operadores bit a bit, el desplazamiento a la derecha de relleno cero devuelve un entero de 32 bits sin signo.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El valor a la derecha se toma mod 32. (es decir, solo se usan los últimos cinco bits). Si calcula 100>>32 , obtiene 100 , que es lo mismo que obtiene cuando calcula 100>>0 . Después de eso, 100>>33 es 50 y el ciclo se repite.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda